package com.jjh.common.controller;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;

import com.jjh.common.util.DateUtil;
import com.jjh.common.util.EncryptUtil;
import com.jjh.common.util.PageInfoUtil;
import com.jjh.common.util.RegexUtil;
import com.jjh.common.util.VerifyCodeUtil;

import lombok.Data;

/**
 * 所有的Controller的公共代码
 * @author MyJJh
 *
 */
public class BaseController
{
	/**
	 * 提示信息
	 */
	protected String info = "" ;
	
	/**
	 * 正则表达式工具类
	 */
	@Autowired
	protected RegexUtil regexUtil ;
	
	/**
	 * 加密工具类
	 */
	@Autowired
	protected EncryptUtil encryptUtil ;
	
	/**
	 * 日期工具类
	 */
	@Autowired
	protected DateUtil dateUtil ;
	
	/**
	 * 分页工具
	 * @param request
	 * @return
	 */
	protected PageInfoUtil proccedPageInfoUtil(HttpServletRequest request)
	{
		/* 分页对象 */
		PageInfoUtil pageInfoUtil = new PageInfoUtil();
		
		try
		{
			String currenPage = request.getParameter("currentPage");
			String pageSize = request.getParameter("pageSize");
			pageInfoUtil.setCurrentPage(Integer.valueOf(currenPage));
			pageInfoUtil.setPageSize(Integer.valueOf(pageSize));
		} catch (NumberFormatException e)
		{
		}
		return pageInfoUtil;
	}
	
	/**
	 * 生成搜索条件
	 * @param request
	 * @return
	 */
	protected Map<String, Object> proccedSearch(HttpServletRequest request)
	{
		/* 搜索的条件 */
		Map<String,Object> condMap = new HashMap<String, Object>();
		/* 处理关键字 */
		String keyword = request.getParameter("keyword");
		if(keyword == null)
		{
			keyword = "" ;
		}
		keyword = keyword.trim();
		condMap.put("keyword", keyword);
		/* 存储大四大作用域中 */
		request.setAttribute("keyword", keyword);
		
		/* 处理状态 */
		String status = request.getParameter("status");
		if(status == null)
		{
			status = "" ;
		}
		condMap.put("status", status);
		/* 存储大四大作用域中 */
		request.setAttribute("status", status);
		
		/* 处理时间 */
		Date stDate = null ;
		Date edDate = null ;
		String st = request.getParameter("st");
		if(st == null)
		{
			st = "" ;
		}
		String ed = request.getParameter("ed");
		if(ed == null)
		{
			ed = "" ;
		}
		
		if(!"".equalsIgnoreCase(st) && !"".equalsIgnoreCase(ed)) 
		{
			dateUtil.strToDateTime(st);
			dateUtil.strToDateTime(ed);
		}
		condMap.put("st", stDate);
		condMap.put("ed", edDate);
		/* 存储大四大作用域中 */
		request.setAttribute("st", st);
		request.setAttribute("ed", ed);
		return condMap;
	}
}
